const router = require('express').Router();
const Jwt = require('../../common/token/jwt');//处理token的工具 json web token
const classifyModel = require('../../model/classifyModel');

// 添加导航（分类）
// URL: /api/classify/add
// 参数： classify_text , token
router.post('/add', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken();
    // 登录状态
    if (result.code == 200) {
        let { classify_text } = req.body;
        if (classify_text) {
            // 添加导航
            await classifyModel.add(classify_text)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )
        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})

// 导航列表
// URL: /api/classify/list
// 参数：无
router.get('/list', async (req, res) => {
    // 获取导航列表
    await classifyModel.list()
        .then(
            (data) => {
                res.send(data);
            },
            (err) => {
                res.send(err);
            }
        )
})

// 删除导航
// URL: /api/classify/remove
// 参数： id , token
router.post('/remove', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let { id } = req.body;
        if (id) {
            // 删除导航
            await classifyModel.remove(id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )

        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }


    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})

// 热门导航
// URL: /api/classify/hot
// 参数：classify_hot,  id , token
router.post('/hot', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let { classify_hot, id } = req.body;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        // 设置热门导航
        await classifyModel.hot(classify_hot, id)
            .then(
                (data) => {
                    res.send(data);
                },
                (err) => {
                    res.send(err);
                }
            )
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})


// 添加导航子分类（分类）
// URL: /api/classify/add_child
// 参数：id, classify_text, classify_title, classify_id, token
router.post('/add_child', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken();
    // 登录状态
    if (result.code == 200) {
        let { id, classify_text, classify_title } = req.body;
        let classify_id = Math.random().toString().slice(2);
        if (id && classify_text && classify_title) {
            // 添加导航
            await classifyModel.add_child(id, classify_text, classify_title, classify_id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )
        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})


// 导航子分类列表
// URL: /api/classify/list_child
// 参数：classify_text
router.get('/list_child', async (req, res) => {
    let {classify_text} = req.query;
    if(classify_text) {
        // 获取导航列表
        await classifyModel.list_child(classify_text)
        .then(
            (data) => {
                res.send(data);
            },
            (err) => {
                res.send(err);
            }
        )
    }
    else {
        res.send({
            code: -1,
            msg: '缺少参数'
        });
    }
})


// 删除导航子分类
// URL: /api/classify/remove_child
// 参数： classify_id , token
router.post('/remove_child', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let { classify_id } = req.body;
        if (classify_id) {
            // 删除导航
            await classifyModel.remove_child(classify_id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )

        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }


    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})


// 删除导航所有子分类
// URL: /api/classify/remove_child_all
// 参数： id , token
router.post('/remove_child_all', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let { id } = req.body;
        if (id) {
            // 删除导航
            await classifyModel.remove_child_all(id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )

        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }


    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})



// 设置导航图标
// URL: /api/classify/set_icon
// 参数：classify_src,  id , token
router.post('/set_icon', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let { classify_src, id } = req.body;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        // 设置导航图标
        await classifyModel.set_icon(classify_src, id)
            .then(
                (data) => {
                    res.send(data);
                },
                (err) => {
                    res.send(err);
                }
            )
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})



module.exports = router;